SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TWDOCU_CLIE_I01]                          
/*---------------------------------------------------------*/                              
/*---Empresa              : OFISIS S.A.                  --*/                              
/*---Cliente              : OFISIS S.A.                  --*/                              
/*---Sistema              : Tesoreria                    --*/                              
/*---M¸dulo               : Empresa                      --*/                              
/*---Programa             : Procedimiento para generar   --*/                              
/*---                       documentos                   --*/                                    
/*---Script               : ttproc_i.sql                 --*/                              
/*---Nombre SP            : SP_TCMOVI_BANC_I06           --*/                              
/*---Desarrollado por     : Carlos Marquez Escobar       --*/                              
/*---Fecha Creaci¸n       : 03/03/2006                   --*/                              
/*---Base Datos           : Microsoft Sql Server         --*/                              
/*---Versi¸n              : 8.0                          --*/                              
/*---Invoca a SP          :                              - -*/                              
/*---------------------------------------------------------*/                              
/*---------------------------------------------------------*/                              
/*---Modificado 1 por     : Carlos Marquez E.       --*/                              
/*---Fecha Modificaci¸n   : 03/03/2006      --*/                               
/*---Detalle Modificaci¸n : Incluir Campos TMLIQU_TRAB   --*/                              
/*---------------------------------------------------------*/                              
/*---------------------------------------------------------*/                              
/*---Modificado 2por     : Carlos Marquez E.    --*/                              
/*---Fecha Modificaci¸n   : 09/05/2006      --*/                               
/*---Detalle Modificaci¸n : Incluir Unida como Pk, y contr-*/                              
/*---      chequeras     ---*/                          
/*---------------------------------------------------------*/                              
/*---Comentarios                                         --*/                              
/*---                                                    --*/                              
/*---------------------------------------------------------*/                             
@ISCO_EMPR   TD_VC_002,                                  
@ISCO_USUA_MODI  TD_VC_008_USUA ,                           
@ISCO_UNID  TD_VC_003                        
As                            
Declare                              
@CNNU_FILA   TD_IN_001  ,                            
@CSCO_CLIE   TD_VC_020  ,                            
@CSCO_TIPO_DOCU   TD_VC_003  ,                            
@CSNU_DOCU_CLIE   TD_VC_020  ,                            
@CSCO_MONE   TD_VC_003  ,                            
@CSFE_EMIS   TD_VC_020  ,                            
@CSFE_VENC   TD_VC_020  ,                            
@CSFA_CAMB   TD_VC_005  ,                            
@CSCO_COND_PAGO   TD_VC_003 ,                            
@CSCO_TIPO_OPER   TD_VC_003  ,                            
@CSDE_OBSE   TD_VC_100  ,                            
@CSIM_AFEC   TD_VC_020  ,                            
@CSIM_INAF   TD_VC_020  ,                           
@CSCO_IMP1   TD_VC_003  ,                           
@CSIM_IMP1   TD_VC_020  ,                            
@CSIM_TOTA   TD_VC_020  ,                            
@CSCO_CNTA_EMPR   TD_VC_020  ,                            
@CSTI_AUXI   TD_VC_001  ,                            
@CSCO_AUXI   TD_VC_020  ,                            
@CSCO_ORDE_SERV  TD_VC_020,          
@CSPO_DIST TD_VC_020,          
                          
@VSNU_SERI_EXIS     TD_VC_004  ,                          
@VSCO_TIPO_DOCU   TD_VC_001  ,                          
@VSST_SERI   TD_VC_001  ,                          
@VSNU_SERI_00  TD_VC_020  ,                            
@VSNU_SERI_01  TD_VC_020  ,                        
@VSNU_SERI_02  TD_VC_020  ,                          
@VSCO_CLIE   TD_VC_020  ,                          
@VNNU_LONG TD_IN_001   ,                          
@VSCO_MONE   TD_VC_003  ,                          
@VSFE_EMIS_DD  TD_VC_002  ,                          
@VSFE_EMIS_MM  TD_VC_002  ,                          
@VSFE_EMIS_AA  TD_VC_004  ,                          
@VSTI_SITU_CXCB  TD_VC_003  ,                          
@VSST_CIER_CNTB  TD_VC_001  ,                          
@VSFE_VENC_DD  TD_VC_002  ,                          
@VSFE_VENC_MM  TD_VC_002  ,                          
@VSFE_VENC_AA  TD_VC_004  ,                          
@VSFA_CAMB_EVAL  TD_VC_010,                          
@VNFE_EMIS_AA   TD_IN_001,                        
@VNFE_EMIS_MM TD_IN_001,                        
                        
@VSFE_PAGO_DD TD_VC_002  ,                         
@VSFE_PAGO_MM TD_VC_002  ,                         
@VSFE_PAGO_AA TD_VC_004  ,                     
                      
@VSST_DOCU_0010 TD_VC_001,                      
                      
@VNNU_CONT_01 TD_IN_001,                        
                          
@VSTI_OPRG_SIPR TD_VC_003,                        
                         
@VSCO_CNTA_EMPR_EMPR  TD_VC_020,                      
@VSST_AUXI_EMPR  TD_VC_001,                        
@VSST_DOCU_CNTB  TD_VC_001,                        
@VSST_MONE   TD_VC_001,                         
@VSCO_MONE_CNTA  TD_VC_003,                        
@VSST_ORDE_SERV  TD_VC_001,                        
@VNNV_INFO_CNTA TD_IN_001,                        
@VSTI_AUXI_EMPR TD_VC_003,                        
@VSCO_AUXI_EMPR TD_VC_020,                        
@VSCO_ORDE_SERV TD_VC_020,                        
@VNNU_LONG_SERI  TD_IN_001,                        
@VNNU_ERRO  TD_IN_001,                        
@VSTI_OPRG_NOPR   TD_VC_003,                      
@VSCO_COND_PAGO_AUTO TD_VC_001,                      
@VSCO_MONE_NACI TD_VC_003,                      
@VSCO_MONE_EXTR TD_VC_003,                    
@VSST_CIER_CNT1  TD_VC_001,                    
@VSST_CIER_CNT2 TD_VC_001,                
@VSST_VENT TD_VC_001,      
@VNNU_ERRO_FINA TD_IN_001,  
@VSTI_OPNI_CARG TD_VC_003,  
@VSTI_OPNI_ABON TD_VC_003,  
@VS_TIOP_CONF TD_VC_003,  
@VSCO_OPRC_CNTB TD_VC_003,  
@VSST_ASTO_RESU TD_VC_001          
          
                           
                           
Begin Tran SP_TWDOCU_CLIE_I01                              
                              
DELETE #TWDOCC_ERRO_02                          
DELETE #TWDOCC_ERRO_03                        
                
                      
Select  @VSTI_OPNI_CARG =  CO_TIPO_OPER, @VSTI_OPNI_ABON = CO_TIPO_OPEG,                      
@VSCO_MONE_NACI = CO_MONE_DEFA, @VSCO_MONE_EXTR = CO_MONE_EXTR, @VSST_VENT = ST_VENT                      
 From TMPARA_TESO                            
 Where CO_EMPR = @ISCO_EMPR                          
                              
Declare CU_TWDOCU_CLIE_I01  Cursor For                              
SELECT NU_FILA, CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, CO_MONE, FE_EMIS, FE_VENC,                            
FA_CAMB, CO_COND_PAGO, CO_TIPO_OPER, DE_OBSE, IM_AFEC, IM_INAF, CO_IMP1,IM_IMP1, IM_TOTA,                          
CO_CNTA_EMPR, TI_AUXI, CO_AUXI, CO_ORDE_SERV, PO_DIST          
FROM #TWDOCC_ERRO_01                                
                             
                             
Open  CU_TWDOCU_CLIE_I01                                
Fetch CU_TWDOCU_CLIE_I01                                
Into  @CNNU_FILA, @CSCO_CLIE, @CSCO_TIPO_DOCU, @CSNU_DOCU_CLIE, @CSCO_MONE, @CSFE_EMIS, @CSFE_VENC,                            
@CSFA_CAMB, @CSCO_COND_PAGO, @CSCO_TIPO_OPER, @CSDE_OBSE, @CSIM_AFEC, @CSIM_INAF, @CSCO_IMP1, @CSIM_IMP1, @CSIM_TOTA,          
@CSCO_CNTA_EMPR, @CSTI_AUXI, @CSCO_AUXI, @CSCO_ORDE_SERV, @CSPO_DIST          
                              
While (@@FETCH_STATUS = 0)                                
 Begin                                
   If (@@FETCH_STATUS < 0)                                
 Begin                                
  RAISERROR 20001 'FIN DE ARCHIVO'                                
  Close CU_TWDOCU_CLIE_I01                                 
  Deallocate CU_TWDOCU_CLIE_I01                                 
  Rollback tran                                
  Return                                
 End                                
         
 ----INICIALIZACIONES                              
 select @VSCO_CLIE  = NULL                          
 select @VSCO_TIPO_DOCU  = NULL                          
 select @VSST_SERI  = NULL                          
                
 select @VSNU_SERI_00 =NULL                          
 select @VSNU_SERI_01 = NULL                          
 select @VSNU_SERI_02 = NULL                          
 select @VSNU_SERI_EXIS = NULL                          
 SELECT @VNNU_LONG  = 0                          
 SELECT @VSCO_MONE  = NULL                          
 SELECT @VSCO_AUXI_EMPR = NULL                        
                
 SELECT @VNNU_ERRO = 0                        
                          
              
  -------VALIDACIONES -------                             
                           
   ---  CLIENTE  ---                          
 IF ISNULL(@CSCO_CLIE,'') = ''                          
  BEGIN                          
   INSERT INTO #TWDOCC_ERRO_02( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CÓDIGO DE CLIENTE NO PUEDE SER NULO' )                          
  END                          
 ELSE                          
  BEGIN                          
                            
    IF ( LEN(@CSCO_CLIE)!= 11 ) AND ISNULL(@CSCO_CLIE,'')!= ''                        
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                           
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE CÓDIGO CLIENTE INCORRECTO')                          
    ELSE                           
  BEGIN                 
   IF @VSST_VENT = 'S'                      
   BEGIN                          
    SELECT @VSCO_CLIE = CO_CLIE                           
    FROM  OFIVENT..TMCLIE                           
    WHERE CO_EMPR = @ISCO_EMPR                           
    AND CO_CLIE = @CSCO_CLIE                          
    AND TI_SITU != 'ANU'                          
   END                
   ELSE                 
   BEGIN                          
    SELECT @VSCO_CLIE = CO_CLIE                           
    FROM  TMCLIE_TESO                           
    WHERE CO_EMPR = @ISCO_EMPR                           
    AND CO_CLIE = @CSCO_CLIE                          
    AND TI_SITU != 'ANU'                          
   END                
                             
   IF ISNULL(@VSCO_CLIE,'') = '' AND ISNULL(@CSCO_CLIE,'') != '' AND LEN(@CSCO_CLIE) = 11                              
   Begin                          
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CLIENTE NO EXISTE O SE ENCUENTRA INACTIVO')                          
   End                
  END                              
     END                          
                             
   ------------- TIPO DE DOCUMENTO -------------                          
  IF ISNULL(@CSCO_TIPO_DOCU,'') = ''                          
  BEGIN                          
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
@CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE DOCUMENTO NO PUEDE SER NULO')                          
  END                          
  ELSE                          
  BEGIN                          
    IF LEN(@CSCO_TIPO_DOCU) <> 3 AND ISNULL(@CSCO_CLIE,'') != ''                          
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE TIPO DE DOCUMENTO INCORRECTO')                          
    ELSE                            
      BEGIN                            
   SELECT @VSCO_TIPO_DOCU = TI_DOCU                               
   FROM  TTDOCU_CNTB                           
   WHERE TI_DOCU = @CSCO_TIPO_DOCU                          
                              
  IF ISNULL(@VSCO_TIPO_DOCU,'') = ''   AND @CSCO_TIPO_DOCU IS NOT NULL                   
                             
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE DOCUMENTO NO EXISTE')                          
                   
   END                                          
  END                          
                             
                            
 ------------------ NUMERO DOCUMENTO ----------------------                          
  IF ISNULL(@CSNU_DOCU_CLIE,'') = ''                          
  BEGIN                          
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                     
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'NUMERO DOCUMENTO NO PUEDE SER NULO')                          
  END                          
  ELSE                          
  BEGIN                                     
                               
        --CONF DEL TIPO  DOC              
        SELECT @VSCO_TIPO_DOCU = TI_DOCU, @VSST_SERI = ST_SERI, @VNNU_LONG = CASE WHEN NU_LONG = 0 THEN 20 ELSE NU_LONG END,                        
        @VNNU_LONG_SERI = NU_LONG_SERI                          
        FROM  TTDOCU_CNTB                           
        WHERE TI_DOCU = @CSCO_TIPO_DOCU                           
                             
        IF @VSST_SERI  = 'S'                           
        BEGIN                           
          SELECT @VSNU_SERI_00 =  SUBSTRING(@CSNU_DOCU_CLIE,1,@VNNU_LONG_SERI)                          
                            
          SELECT @VSNU_SERI_EXIS = NU_SERI                          
          FROM TTDOSE_CORR                           
          WHERE CO_EMPR = @ISCO_EMPR AND                          
          TI_DOCU = @CSCO_TIPO_DOCU AND                          
          NU_SERI = @VSNU_SERI_00                        
                                  
          IF ISNULL(@VSNU_SERI_EXIS,'') = ''                          
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'NUMERO DE SERIE INCORRECTO PARA EL TIPO DE DOCUMENTO')                
                                  
    SELECT @VSNU_SERI_01 =  SUBSTRING(@CSNU_DOCU_CLIE,@VNNU_LONG_SERI+1,1)                     
                                 
          IF  @VSNU_SERI_01 != '-'                           
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'NUMERO DE DOCUMENTO DEBE LLEVAR SERIE')                      
                                 
         SELECT @VSNU_SERI_02 =  SUBSTRING(@CSNU_DOCU_CLIE,@VNNU_LONG_SERI+2,20)                          
                             
    IF (LEN(@VSNU_SERI_02) != @VNNU_LONG) AND @VSNU_SERI_01 = '-'                        
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE NUMERO DE DOCUMENTO NO COINCIDE')                
                                
        END --VSST_SERI = S                         
         --REVISAR VALIDACION --                          
       ELSE IF  @VSST_SERI  = 'N'                           
        BEGIN                          
                      
    SELECT @VSNU_SERI_02 =  SUBSTRING(@CSNU_DOCU_CLIE,@VNNU_LONG_SERI+1,@VNNU_LONG)                          
                             
    IF (LEN(@VSNU_SERI_02) != @VNNU_LONG)                          
                               
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LONGITUD DE NUMERO DE DOCUMENTO NO COINCIDE')                          
        END                           
                           
                            
   END                  
                                     
                              
   ----------------------------------MONEDA----------------------------------                          
                              
   IF ISNULL(@CSCO_MONE,'') = ''                          
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
     DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO MONEDA NO PUEDE SER NULO ')                          
   ELSE                        
     IF NOT EXISTS ( SELECT *                           
     FROM TTMONE                         
     WHERE  CO_MONE = @CSCO_MONE )                        
       INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
       DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )     
       VALUES (                          
       @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
       @CSFE_EMIS  ,  @CSFE_VENC ,                            
       @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
       @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
       @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO MONEDA NO CONFIGURADO ')                          
                       
   ----------------------------------CONDICION PAGO----------------------------------                          
                              
   IF ISNULL(@CSCO_COND_PAGO,'') = ''                     
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
     DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO CONDICION PAGO NO PUEDE SER NULO ')                          
   ELSE                        
     IF NOT EXISTS ( SELECT *                        
     FROM TTTIPO_COND                           
     WHERE  CO_EMPR = @ISCO_EMPR                
     AND CO_COND_PAGO = @CSCO_COND_PAGO )                        
       INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
       DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
       VALUES (                          
       @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
       @CSFE_EMIS  ,  @CSFE_VENC ,                            
       @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
       @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
       @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO CONDICION PAGO NO EXISTE ')                          
                             
                     
   -----------------------------FECHA EMISION----------------------------------                          
   SELECT @VSFE_EMIS_DD =  SUBSTRING(@CSFE_EMIS,1,2)                          
   SELECT @VSFE_EMIS_MM =  SUBSTRING(@CSFE_EMIS,4,2)                          
   SELECT @VSFE_EMIS_AA =  SUBSTRING(@CSFE_EMIS,7,4)                          
                                       
                      
                      
                      
              
  
   IF ISNULL(@CSFE_EMIS,'') = ''                          
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE EMISION NO PUEDE SER NULO ')                           
                           
                             
 SELECT @VSTI_SITU_CXCB = TI_SITU_CXCB                          
   FROM TTPERI_CCCP                          
   WHERE CO_EMPR = @ISCO_EMPR                          
  AND AA_PERI = @VNFE_EMIS_AA                       
  AND MM_PERI = @VNFE_EMIS_MM                           
                           
 IF @VSTI_SITU_CXCB != 'ACT'                          
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'PERIODO PARA FECHA DE EMISION NO SE ENCUENTRA APERTURADO')     
    
    
  IF @CSCO_TIPO_OPER != @VSTI_OPNI_CARG AND @CSCO_TIPO_OPER != @VSTI_OPNI_ABON  
  BEGIN  
    
   Select @VS_TIOP_CONF = CO_TIPO_OPER  
   From  TDTIPO_OPER  
   Where CO_EMPR = @ISCO_EMPR  
   And      CO_TIPO_OPER = @CSCO_TIPO_OPER  
     
   IF ISNULL(@VS_TIOP_CONF,'') = ''  
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACIÒN NO ESTA CONFIGURADO')  
   ELSE  
   BEGIN  
    IF NOT EXISTS (Select  ISNULL(T1.CO_OPRC_CNTB,''), T3.ST_ASTO_RESU, T2.ST_CIER_CNTB                     
    From TDTIPO_OPER T1 ,TCFECH_PROC T2, TMOPRC_RESU T3                    
    Where T1.CO_EMPR = @ISCO_EMPR                    
    And T1.CO_TIPO_OPER = @CSCO_TIPO_OPER                    
    And T1.CO_EMPR = T2.CO_EMPR                    
    And T2.NU_CNTB_EMPR = 1                    
    And T2.CO_UNID_CNTB = @ISCO_UNID                    
    And T1.CO_OPRC_CNTB = T2.CO_OPRC_CNTB                    
    And T2.NU_ANNO = @VSFE_EMIS_AA                    
    And T2.NU_MESE = @VSFE_EMIS_MM                    
    And T1.CO_EMPR = T3.CO_EMPR                    
    And T1.CO_OPRC_CNTB = T3.CO_OPRC_CNTB)  
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
     DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
     VALUES (                          
     @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
     @CSFE_EMIS  ,  @CSFE_VENC ,                            
     @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
     @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
     @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'LIBRO CONTABLE NO ESTA APERTURADO')  
    ELSE  
    BEGIN   
     Select  @VSCO_OPRC_CNTB = ISNULL(T1.CO_OPRC_CNTB,''),@VSST_ASTO_RESU = T3.ST_ASTO_RESU, @VSST_CIER_CNT2 = T2.ST_CIER_CNTB                     
     From TDTIPO_OPER T1 ,TCFECH_PROC T2, TMOPRC_RESU T3                    
     Where T1.CO_EMPR = @ISCO_EMPR                    
     And T1.CO_TIPO_OPER = @CSCO_TIPO_OPER                    
     And T1.CO_EMPR = T2.CO_EMPR                    
     And T2.NU_CNTB_EMPR = 1                    
     And T2.CO_UNID_CNTB = @ISCO_UNID                    
     And T1.CO_OPRC_CNTB = T2.CO_OPRC_CNTB                    
     And T2.NU_ANNO = @VSFE_EMIS_AA                    
     And T2.NU_MESE = @VSFE_EMIS_MM                    
     And T1.CO_EMPR = T3.CO_EMPR                    
     And T1.CO_OPRC_CNTB = T3.CO_OPRC_CNTB                           
                               
     IF @VSST_CIER_CNT2 = 'S'                          
      INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
      DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
      VALUES (                          
      @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
      @CSFE_EMIS  ,  @CSFE_VENC ,                            
      @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
      @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
      @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'PERIODO CONTABLE PARA OPERACIÓN '+@VSCO_OPRC_CNTB+' ESTA CERRADO')  
     ELSE  
     BEGIN  
      IF @VSST_ASTO_RESU = 'N'  
      BEGIN  
       IF @VSCO_OPRC_CNTB = ''  
        INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
        DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
        VALUES (                          
        @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
        @CSFE_EMIS  ,  @CSFE_VENC ,                            
        @CSFA_CAMB ,  @CSCO_COND_PAGO , @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
        @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
        @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'PERIODO CONTABLE PARA FECHA DE EMISION ESTA CERRADO')  
      END  
     END   
     
    END  
     
   END                    
      
  END  
                           
   IF (@VSFE_EMIS_MM > '12' OR  @VSFE_EMIS_MM < '01') AND ISNULL(@CSFE_EMIS,'') != ''                          
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'RANGO DEL MES INCORRECTO')                          
                            
                      
                  
  ----------------------------FECHA DE REGISTRO ----------------------------------                          
   SELECT @VSFE_VENC_DD =  SUBSTRING(@CSFE_VENC,1,2)                          
   SELECT @VSFE_VENC_MM =  SUBSTRING(@CSFE_VENC,4,2)                          
   SELECT @VSFE_VENC_AA =  SUBSTRING(@CSFE_VENC,7,4)                  
   SELECT @VSTI_SITU_CXCB = NULL                          
   SELECT @VSST_CIER_CNTB = NULL                          
                       
                         
   IF ISNULL(@CSFE_VENC,'') = ''                          
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
 DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
 VALUES (                          
 @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
 @CSFE_EMIS  ,  @CSFE_VENC ,                            
 @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
 @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE VENCIMIENTO NO PUEDE SER NULO ')                           
                        
         ---ALL                    
   IF @CSFE_VENC < @CSFE_EMIS                     
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
 DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
 VALUES (                          
 @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
 @CSFE_EMIS  ,  @CSFE_VENC ,                            
 @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
 @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FECHA DE VENCIMIENTO  NO PUEDE MENOR A LA FECHA DE EMISION ')                      
                              
   IF @VSFE_VENC_MM > '12' OR @VSFE_VENC_MM < '01'                
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'RANGO DEL MES INCORRECTO')                          
                      
                             
 -----------------------FACTOR DE CAMBIO ----------------------------------------                          
 SELECT @VSFA_CAMB_EVAL =  SUBSTRING(@CSFA_CAMB,2,1)                          
         
   IF @VSFA_CAMB_EVAL != '.'                          
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
@CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FACTOR DE CAMBIO INCORRECTO')                          
                        
  --------                    
  IF CONVERT(NUMERIC(15,6),@CSFA_CAMB,0) <= 0                      
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FACTOR DE CAMBIO NO PUEDE SER MENOR O IGUAL A CERO')                       
                      
                      
                      
   IF  ISNULL(@CSFA_CAMB,'') = ''                       
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                   
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FACTOR DE CAMBIO NO PUEDE SER NULO')                          
                                       
    --------------------TIPO DE OPERACION PARA TMDOCU_CLIE  ---------------------------------                          
                          
 IF ISNULL(@CSCO_TIPO_OPER,'')= ''                        
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION NO PUEDE SER VACIO')                          
 ELSE                        
     IF NOT EXISTS (Select  T2.DE_TIPO_OPER              
     From  TTTIPO_OPER T2              
     Where   T2.CO_EMPR = @ISCO_EMPR              
     And T2.CO_TIPO_OPER = @CSCO_TIPO_OPER              
     And T2.TI_MOVI = 'A'              
     And T2.TI_SITU = 'ACT'              
     And Exists              
     (Select T1.CO_TIPO_OPER From TRTIOP_OPCI T1              
     Where T1.CO_EMPR = @ISCO_EMPR              
     And T1.CO_EMPR = T2.CO_EMPR              
     And T1.CO_TIPO_OPER = T2.CO_TIPO_OPER              
     And T1.CO_FORM = 'FTEEMBK')  )              
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,             
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'TIPO DE OPERACION NO EXISTE')                          
                          
  --------------------OBSERVACION---------------------------------                          
                          
 IF ISNULL(@CSDE_OBSE,'')= ''                        
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'OBSERVACION NO PUEDE SER VACIO')                          
                         
                             
     --------------------IMPORTE AFECTO---------------------------------                          
                               
  ---AL                      
  IF  CONVERT(NUMERIC(16,4),@CSIM_AFEC)< 0                         
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE AFECTO NO PUEDE SER NEGATIVO')                          
                        
  IF (ISNULL(@CSIM_AFEC,'') ='' AND  ISNULL(@CSIM_INAF,'') ='') OR (CONVERT(NUMERIC(16,4),@CSIM_AFEC)= 0 AND CONVERT(NUMERIC(16,4),@CSIM_INAF)= 0)                        
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                         
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FALTA INGRESAR IMPORTE DE DOCUMENTO')                          
                        
  IF (ISNULL(@CSIM_AFEC,'')= ''  AND ISNULL(@CSIM_IMP1,'')!='')                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE AFECTO NO PUEDE SER NULO')                          
                        
                        
                       
                           
   --------------------IMPORTE INAFECTO---------------------------------                          
           
  ---AL                      
  IF CONVERT(NUMERIC(16,4),@CSIM_INAF)< 0                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE INAFECTO NO PUEDE SER NEGATIVO')                        
                        
                          
  --------------------CODIGO IMPUESTO -------------------------------------            
                         
   ---AL                      
  IF ISNULL(@CSIM_AFEC,'')!='' AND ISNULL(@CSIM_INAF,'')='' AND ISNULL(@CSCO_IMP1,'')=''                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FALTA INGRESAR CODIGO DE IMPUESTO')                         
                              
  IF ISNULL(@CSCO_IMP1,'')!='' AND NOT EXISTS(SELECT * FROM TTIMPT WHERE CO_IMPT = @CSCO_IMP1 )                        
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CODIGO DE IMPUESTO NO EXISTE')                        
                        
  --AL                      
                          
  IF ISNULL(@CSIM_AFEC,'')='' AND  ISNULL(@CSIM_INAF,'')!='' AND ISNULL(@CSCO_IMP1,'')!=''                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
@CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO NO DEBE LLEVAR CODIGO DE IMPUESTO ')                        
                         
     IF ISNULL(@CSIM_AFEC,'')! ='' AND ISNULL(@CSCO_IMP1,'') =''                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO DEBE LLEVAR CODIGO DE IMPUESTO ')                        
                       
 ---------------------------- IMPORTE IMPUESTO ---------------------------------------                        
                        
  IF ISNULL(@CSIM_IMP1,'')!='' AND CONVERT(NUMERIC(16,4),@CSIM_IMP1)<0                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE IMPUESTO NO PUEDE SER NEGATIVO')                        
                        
                        
  IF ISNULL(@CSIM_AFEC,'')!='' AND ISNULL(@CSCO_IMP1,'')!='' AND ISNULL(@CSIM_IMP1,'')=''                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,              
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'FALTA INGRESAR IMPORTE IMPUESTO')                        
                        
  IF ISNULL(@CSIM_INAF,'')!='' AND ISNULL(@CSIM_AFEC,'')='' AND ISNULL(@CSCO_IMP1,'')=''                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS  ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'DOCUMENTO NO DEBE LLEVAR IMPORTE IMPUESTO')                        
                        
 ---------------------------- IMPORTE TOTAL ------------------------------------                        
 IF ISNULL(@CSIM_TOTA,'')= ''                        
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS  ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                           
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE TOTAL NO PUEDE SER VACIO')                          
                          
 ELSE                        
  BEGIN                         
   IF CONVERT(NUMERIC,@CSIM_TOTA)< 0                         
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE TOTAL NO PUEDE SER NEGATIVO')                         
                          
  --VAL                        
                        
   IF CONVERT(NUMERIC(16,4),@CSIM_TOTA) != ( CONVERT(NUMERIC(16,4),@CSIM_AFEC)+ CONVERT(NUMERIC(16,4),@CSIM_INAF)+ CONVERT(NUMERIC(16,4),@CSIM_IMP1) )                        
    INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
    DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
    VALUES (                          
    @CNNU_FILA  ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
    @CSFE_EMIS  ,  @CSFE_VENC ,                            
    @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
    @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
    @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'IMPORTE TOTAL INCORRECTO, SUMA NO COINCIDE')                          
  END                             
                      
 ---------------------------  CODIGO DE CUENTA -----------------------------------------                        
  Select   @VSCO_CNTA_EMPR_EMPR = CO_CNTA_EMPR,                                
     @VSST_AUXI_EMPR = ST_AUXI_EMPR,                                
     @VSST_DOCU_CNTB = ST_DOCU_CNTB,                                
     @VSST_MONE   = ST_MONE ,                                     
     @VSCO_MONE_CNTA = CO_MONE ,                                
     @VSST_ORDE_SERV = ST_ORDE_SERV                                
     From   TMPLAN_EMPR                
     Where  CO_EMPR      = @ISCO_EMPR                                
     And    CO_CNTA_EMPR = @CSCO_CNTA_EMPR                                
     AND    TI_SITU = 'ACT'                                    
                        
    SELECT @VNNV_INFO_CNTA = NV_INFO_CNTA                         
    FROM   TMPARA_CONT                        
    WHERE  CO_EMPR = @ISCO_EMPR                                 
                           
 IF ISNULL(@CSCO_CNTA_EMPR,'')= ''     
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CUENTA CONTABLE NO PUEDE SER NULO')                           
                         
 ELSE                         
 BEGIN                        
 IF @VSCO_CNTA_EMPR_EMPR Is Null                                
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
 @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CUENTA NO EXISTE O ESTA DESACTIVADA ' )                          
                               
    IF LEN(@VSCO_CNTA_EMPR_EMPR) != @VNNV_INFO_CNTA                               
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,  'CUENTA CONTABLE DEVE SER A NIVEL ANALITICO' )                              
 ---------------------------------- OS -----                        
 IF @VSST_ORDE_SERV = 'S' and ISNULL(DATALENGTH(LTRIM(RTRIM(ISNULL(@CSCO_ORDE_SERV,'')))),0) = 0                                
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA LLEVA ORDEN DE SERVICIO'    )                        
                          
  IF @VSST_ORDE_SERV = 'N' and ISNULL(DATALENGTH(LTRIM(RTRIM(ISNULL(@CSCO_ORDE_SERV,'')))),0) > 0                                
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA NO LLEVA ORDEN DE SERVICIO' )                          
     ------------AUX----------                        
   IF @VSST_AUXI_EMPR = 'N'                                
     BEGIN                            
   IF (@CSTI_AUXI Is Not Null Or @CSCO_AUXI Is Not Null)                                
   and (Ltrim(Rtrim(@CSTI_AUXI)) != '' Or Ltrim(Rtrim(@CSCO_AUXI)) != '')                                
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA NO LLEVA TIPO NI CÓDIGO AUXILIAR'    )                             
  END                         
   ELSE IF @VSST_AUXI_EMPR = 'S'                                
  BEGIN                                
     If (@CSTI_AUXI Is Null Or @CSCO_AUXI Is Null)                                
     Or (Ltrim(Rtrim(@CSTI_AUXI)) = '' Or Ltrim(Rtrim(@CSCO_AUXI)) = '')                                    
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,      
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CUENTA LLEVA TIPO Ó CÓDIGO AUXILIAR'   )                          
  END                            
      --------------------                        
                        
 END                         
  -------- --------------TIPO DE AUXILIAR--------------------------------------                        
                        
  If @CSTI_AUXI Is Not Null                                
  Begin                                
   Select @VSTI_AUXI_EMPR = TI_AUXI_EMPR                                
   From   TTAUXI_EMPR                                
   Where  CO_EMPR      = @ISCO_EMPR                                
   And    TI_AUXI_EMPR = @CSTI_AUXI                                
                                  
   If @VSTI_AUXI_EMPR Is Null                                
 Begin                             
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                     
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'TIPO DE AUXILIAR NO EXISTE'   )                          
 END                        
  END                          
  ----------------------CODIGO DE AUXILIAR--------------------------------------                        
  ----VALIDAR SI SE COLOCO AUXILIAR                        
  If @CSCO_AUXI Is Not Null                                
  Begin                                
    Select @VSCO_AUXI_EMPR = CO_AUXI_EMPR                                
    From   TMAUXI_EMPR                                
    Where  CO_EMPR      = @ISCO_EMPR                                
    And    TI_AUXI_EMPR = @CSTI_AUXI                              
    And    CO_AUXI_EMPR = @CSCO_AUXI                          
                            
   -- SELECT * FROM TMAUXI_EMPR WHERE CO_AUXI_EMPR = '10407621447'                               
                                  
 If ISNULL(@VSCO_AUXI_EMPR,'')=''                        
 Begin                             
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'CODIGO DE AUXILIAR NO EXISTE O NO CORRESPONDE AL TIPO DE AUXILIAR'   )                          
   END                        
                         
  END                          
                          
    ---------------------ORDEN SERVICIO -------------------------------------                        
                        
 If @CSCO_ORDE_SERV Is Not Null and @VSST_ORDE_SERV = 'S'                                
 Begin                                
       
                           
  If Not Exists (  Select  CO_ORDE_SERV                                
  From   OFICONT..TMORDE_SERV                                
  Where  CO_EMPR      = @ISCO_EMPR                                
  And    CO_ORDE_SERV = @CSCO_ORDE_SERV )                                
  Begin                                
                      
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'ORDEN DE SERVICIO NO EXISTE'   )                          
                 
  END                        
 END                                              
  ------------------------REGISTRO DUPLICADO-----------------------------------------------------                        
                           
                          
  /* IF EXISTS ( SELECT  COUNT(*)                        
   FROM #TWDOCC_ERRO_01                        
   WHERE CO_CLIE =  @CSCO_CLIE                        
   AND CO_TIPO_DOCU = @CSCO_TIPO_DOCU      
   AND NU_DOCU_CLIE = @CSNU_DOCU_CLIE                        
   GROUP BY CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE                        
   HAVING COUNT(*)>1)                        
  INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
  DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
  VALUES (                          
  @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
  @CSFE_EMIS ,  @CSFE_VENC ,                            
  @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
  @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
  @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'REGISTRO DUPLICADO'   )                      
    */              
  ------------------------REGISTRO PROVISIONADO-----------------------------------------------------                        
                  
 IF EXISTS (                
  SELECT CO_CLIE FROM TMDOCU_CLIE                
  WHERE CO_EMPR = @ISCO_EMPR                
  AND CO_CLIE = @CSCO_CLIE                
  AND CO_TIPO_DOCU = @CSCO_TIPO_DOCU                
  AND NU_DOCU_CLIE = @CSNU_DOCU_CLIE )                  
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'DOCUMENTO YA SE ENCUENTRA PROVISIONADO'   ) 
   
   ------------------------REGISTRO DISTRIBUIDO----------------------------------------------------                        
                  
 IF EXISTS (                
  SELECT CO_EMPR FROM TDDISC_CCOS                
  WHERE CO_EMPR = @ISCO_EMPR                
  AND CO_CLIE = @CSCO_CLIE                
  AND CO_TIPO_DOCU = @CSCO_TIPO_DOCU                
  AND NU_DOCU_CLIE = @CSNU_DOCU_CLIE )                  
   INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA,CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE,CO_MONE,FE_EMIS,FE_VENC,FA_CAMB,CO_COND_PAGO,CO_TIPO_OPER,                          
   DE_OBSE,IM_AFEC,IM_INAF,CO_IMP1,IM_IMP1,IM_TOTA,CO_CNTA_EMPR,TI_AUXI,CO_AUXI,CO_ORDE_SERV,DE_ERRO )                           
   VALUES (                          
   @CNNU_FILA ,  @CSCO_CLIE ,  @CSCO_TIPO_DOCU ,  @CSNU_DOCU_CLIE ,  @CSCO_MONE ,                            
   @CSFE_EMIS ,  @CSFE_VENC ,                            
   @CSFA_CAMB ,  @CSCO_COND_PAGO ,  @CSCO_TIPO_OPER ,  @CSDE_OBSE ,  @CSIM_AFEC ,                            
   @CSIM_INAF ,  @CSCO_IMP1,@CSIM_IMP1 ,  @CSIM_TOTA ,  @CSCO_CNTA_EMPR ,  @CSTI_AUXI ,                            
   @CSCO_AUXI ,  @CSCO_ORDE_SERV ,   'DOCUMENTO YA SE ENCUENTRA DISTRIBUIDO'   )                       
                
                      
  ------------------------------------------INSERT FINAL---------------------------------------                        
                      
  SELECT @VNNU_ERRO = 0                        
                         
  SELECT @VNNU_ERRO = COUNT(*)                         
  FROM #TWDOCC_ERRO_02                        
  WHERE NU_FILA = @CNNU_FILA                        
  --INGRESA SI NO OBTUVO ERRORES EN ESA FILA                        
  IF @VNNU_ERRO = 0                        
   BEGIN                        
                
   Insert Into #TWDOCC_ERRO_03                        
   ( NU_FILA,                        
   CO_CLIE ,CO_TIPO_DOCU , NU_DOCU_CLIE ,  CO_MONE ,  FE_EMIS ,  FE_VENC ,                          
   FA_CAMB ,  CO_COND_PAGO, CO_TIPO_OPER ,  DE_OBSE,  IM_AFEC ,                          
   IM_INAF ,  CO_IMP1 ,   IM_IMP1, IM_TOTA,  CO_CNTA_EMPR,  TI_AUXI ,                          
   CO_AUXI ,  CO_ORDE_SERV, PO_DIST )                        
   values( @CNNU_FILA,                                 
   RTRIM(LTRIM(@CSCO_CLIE)),                        
   RTRIM(LTRIM(@CSCO_TIPO_DOCU)),                        
   RTRIM(LTRIM(@CSNU_DOCU_CLIE)),                        
   RTRIM(LTRIM(@CSCO_MONE)),                        
   CONVERT(DATETIME,RTRIM(LTRIM(@CSFE_EMIS)),103),                        
   CONVERT(DATETIME,RTRIM(LTRIM(@CSFE_VENC)),103),                        
   CONVERT(NUMERIC(15,6),@CSFA_CAMB ),                        
   RTRIM(LTRIM(@CSCO_COND_PAGO)),              
   RTRIM(LTRIM(@CSCO_TIPO_OPER)),              
   RTRIM(LTRIM(@CSDE_OBSE)),                        
   CONVERT(NUMERIC(16,4),@CSIM_AFEC),                        
   CONVERT(NUMERIC(16,4),@CSIM_INAF),                        
   RTRIM(LTRIM(@CSCO_IMP1)),              
   CONVERT(NUMERIC(16,4),@CSIM_IMP1),                        
   CONVERT(NUMERIC(16,4),@CSIM_TOTA),         
   RTRIM(LTRIM(@CSCO_CNTA_EMPR)),              
   RTRIM(LTRIM(@CSTI_AUXI)),              
   RTRIM(LTRIM(@CSCO_AUXI)),              
   RTRIM(LTRIM(@CSCO_ORDE_SERV)),          
   CONVERT(NUMERIC(9,4),@CSPO_DIST) )              
                            
   END                       
 -----------------------------------------------------------------------------                        
                        
   If @@error <> 0                                
     Begin                            
   Close CU_TWDOCU_CLIE_I01                                 
   Deallocate CU_TWDOCU_CLIE_I01                                 
   Rollback Tran                                
   Return                                
     End                                
                          
                        
Fetch  CU_TWDOCU_CLIE_I01                                
Into  @CNNU_FILA, @CSCO_CLIE, @CSCO_TIPO_DOCU, @CSNU_DOCU_CLIE, @CSCO_MONE, @CSFE_EMIS, @CSFE_VENC,                            
@CSFA_CAMB, @CSCO_COND_PAGO, @CSCO_TIPO_OPER, @CSDE_OBSE, @CSIM_AFEC, @CSIM_INAF, @CSCO_IMP1, @CSIM_IMP1, @CSIM_TOTA,                          
@CSCO_CNTA_EMPR, @CSTI_AUXI, @CSCO_AUXI, @CSCO_ORDE_SERV, @CSPO_DIST          
                          
End                          
                          
Close CU_TWDOCU_CLIE_I01                
Deallocate CU_TWDOCU_CLIE_I01          
      
  SELECT @VNNU_ERRO_FINA = 0      
          
  SELECT @VNNU_ERRO_FINA = COUNT(*)      
  FROM #TWDOCC_ERRO_02      
        
  IF @VNNU_ERRO_FINA = 0      
   BEGIN       
    IF EXISTS (SELECT CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE, SUM(PO_DIST) FROM #TWDOCC_ERRO_03          
     GROUP BY CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE          
     HAVING SUM(PO_DIST) != 100 )          
             
     INSERT INTO #TWDOCC_ERRO_02 ( NU_FILA, CO_CLIE,CO_TIPO_DOCU,NU_DOCU_CLIE, DE_ERRO )                           
     SELECT MAX(NU_FILA), CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE,          
     'TOTAL DE DISTRIBUCION NO ES DEL 100%'           
     FROM #TWDOCC_ERRO_03          
     GROUP BY CO_CLIE, CO_TIPO_DOCU, NU_DOCU_CLIE          
     HAVING SUM(PO_DIST) != 100        
    END        
          
          
          
                
Commit Tran SP_TWDOCU_CLIE_I01 

/*--------------------- FIN --------------------------*/
GO
